#ifndef _SIPCONSTANTS_H_
#define _SIPCONSTANTS_H_

namespace SipStatus
{
	enum
	{
		SS_INITIAL,
		SS_REGISTERING,
                SS_REGISTERED,
		SS_INVITING,
		SS_RINGING,
		SS_CALL_ACCEPTED,
		SS_CALLING,
		SS_HANGING_UP,
		SS_HANGED_UP,
		SS_ERROR
	};
}

namespace SipRequest
{
	enum
	{
		REGISTER,
		INVITE,
		CANCEL,
		ACK,
		BYE
	};
}

namespace SipResponse
{
	enum
	{
		// Provisional 1xx
		TRYING = 100,
		RINGING = 180,
		CALL_IS_BEING_FORWARDED = 181,
		QUEUED = 182,
		SESSION_PROGRESS = 183,
		// Successful 2xx
		OK = 200,
		// Redirection 3xx
		MULTIPLE_CHOICES = 300,
		MOVED_PERMANENTLY = 301,
		MOVED_TEMPORARILY = 302,
		USE_PROXY = 305,
		ALTERNATIVE_SERVCICE = 380,
		// Request Failure 4xx
		BAD_REQUEST = 400,
		UNAUTHORIZED = 401,
		PAYMENT_REQUIRED = 402,
		FORBIDDEN = 403,
		NOT_FOUND = 404,
		METHOD_NOT_ALLOWED = 405,
		NOT_ACCEPTABLE_4xx = 406,
		PROXY_AUTHENTICATION_REQUIRED = 407,
		REQUEST_TIMEOUT = 408,
		GONE = 410,
		REQUEST_ENTITY_TOO_LARGE = 413,
		REQUEST_URI_TOO_LONG = 414,
		UNSUPPORTED_MEDIA_TYPE = 415,
		UNSUPPORTED_URI_SCHEME = 416,
		BAD_EXTENSION = 420,
		EXTENSION_REQUIRED = 421,
		INTERVAL_TOO_BRIEF = 423,
		TEPORARILY_UNAVAILABLE = 480,
		CALL_TRANSACTION_DOES_NOT_EXISTS = 481,
		LOOP_DETECTED = 482,
		TOO_MANY_HOPS = 483,
		ADDRESS_INCOPLETE = 484,
		AMBIGIOUS = 485,
		BUSSY_HERE = 486,
		REQUEST_TERMINATED = 487,
		NOT_ACCEPTABLE_HERE = 488,
		REQUEST_PENDING = 491,
		UNDECIPHERABLE = 493,
		// Server Failure 5xx
		SERVER_INTERNAL_ERROR = 500,
		NOT_IMPLEMENTED = 501,
		BAD_GATEWAY = 502,
		SERVICE_UNAVAILABLE = 503,
		SERVER_TIMEOUT = 504,
		VERSION_NOT_SUPPORTED = 505,
		MESSAGE_TOO_LARGE = 513,
		// Global Failures 6xx
		BUSY_EVERYWHERE = 600,
		DECLINE = 603,
		DOES_NOT_EXIST_EVERYWHERE = 604,
		NOT_ACCEPTABLE_6xx = 606
	};
}

namespace SipError
{
	enum
	{
		NOT_INITIALIZED,
		COMMUNICATION_TERMINATION,
		UNSUPPORTED_COMMAND
	};
}

#endif	// _SIPCONSTANTS_H_
